const { jwtDecode } = require('../utils/jwt')
const adminModel = require('../db/model/adminModel')
module.exports = async (req, res, next) => {
  const { token } = req.headers//解构赋值不需要把token写出来
  //对token解码,666是后端在生成token时加的盐 (后端login)
  const jwtResult = jwtDecode(token, '666')
  //如果解码失败,返回解码失败的错误
  //进行响应后需要终止运行,不然会重复发送  
  if (jwtResult.code === 0) {
    return res.send({
      code: 20000,
      msg: "服务端权限校验解码失败",
      data: null
    })
  }
  //解码成功,在数据库中查找
  try {
    const findResult = await adminModel.findOne({
      adminName: jwtResult.adminName
    })
    // console.log(findResult);

    if (findResult.status === 0) {
      return res.send({
        code: 20000,
        msg: '服务端权限校验失败,数据库保存的status异常',
        data: null
      })

    }
    //如果校验通过,直接往后执行,不需要返回数据
    next()
  } catch (e) {
    console.log("权限控制中:查询status状态出现异常" + e.message);
    res.send({
      code: 20000,
      msg: "权限控制中:查询status状态出现异常" + e.message,
      data: null
    })
  }
}